前端采用 datatable框架,实行后端分页,今天突然发现chrome浏览器 打开开发者工具,分页接口请求失败;关闭开发者工具,分页接口请求成功。
前端datatable初始化部分代码如下:
var table = $("#table").DataTable({
"processing": true, //当datatable获取数据时候是否显示正在处理提示信息。
"serverSide": true, //处理分页
"ajax": "/ibox/cgi-bin/dap_new.lua",
"columns": [
{
"data": "ap_mac",
"searchable": false, //全局搜索时,使第一列的序号列不参与搜索
"orderable": false,
render: function(data, type, row, meta) {
var num = meta.settings._iDisplayStart + meta.row + 1;
return ' ' + num;
}
},
{
"data": "dev_model",
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "" + '';
} else {
return data;
}
}
},
{
"data": "ap_mac",
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "N/A" + '';
} else {
return data;
}
}
},
{
"data": "lan_ip",
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "N/A" + '';
} else {
return data;
}
}
},
{
"data": "wan_ip",
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "N/A" + '';
} else {
return data;
}
}
},
{
"data": "sw_version",
"orderable": false,
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "N/A" + '';
} else {
return data;
}
}
},
{
"data": "group_name",
render: function(data, type, row, meta) {
var num = meta.settings._iDisplayStart + meta.row + 1;
var group_name_data = (data == "") ? "N/A" : data;
return '' + group_name_data + '';
}
},
{
"data": "2g",
"orderable": false,
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "N/A" + '';
} else {
return data;
}
}
},
{
"data": "5g",
"orderable": false,
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "N/A" + '';
} else {
return data;
}
}
},
{
"data": "position",
"orderable": false,
render: function(data, type, row, meta) {
var num = meta.settings._iDisplayStart + meta.row + 1;
var position = (data == "") ? "N/A" : data;
return '' + position + '';
}
},
{
"data": "tx_speed",
"orderable": false,
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "" + '';
} else {
return data + 'kbps';
}
}
},
{
"data": "rx_speed",
"orderable": false,
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "" + '';
} else {
return data + 'kbps';
}
}
},
{
"data": "state",
render: function(data, type, row, meta) {
var state = ["START", "IDLE", "SULKING", "DISCOVERY", "JOIN", "IMAGE_DATA", "CONFIGURE", "DATA_CHECK", "RUN", "RESET", "QUIT", "SPECTURM"];
if (data == undefined || data == "" || data < 1 || data > 11) {
return "Unknown";
} else {
return state[data];
}
}
},
{
"data": "online_time",
"orderable": false,
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "" + ''
} else {
var date = new Date();
date.setTime(data * 1000);
return showDate(date);
}
}
},
{
"data": "offline_time",
"orderable": false,
render: function(data, type, row, meta) {
if (data == undefined || data == "") {
return '' + "" + ''
} else {
var date = new Date();
date.setTime(data * 1000);
return showDate(date);
}
}
},
{
"data": "offline_time_total",
"orderable": false,
render: function(data, type, row, meta) {
var off_time = row.offline_time;
if (off_time == "") {
return '' + "" + ''
} else {
var mydate = new Date();
var current_time = mydate.getTime();
off_time = mydate.setTime(off_time * 1000)
var total_time = current_time - off_time;
return formatsec(total_time / 1000);
}
}
}
],
"searching": true,
"dom": "ltip",
"lengthMenu": [10, 30],
"pagingType": "full_numbers",
"order": [1, "asc"],
"fnDrawCallback": function(table) {
var newnode = creGoPage("pageNumCus", "skipId");
document.getElementById("table_paginate").appendChild(newnode);
var oTable = $("#table").dataTable();
$('#skipId').click(function(e) {
if ($("#pageNumCus").val() && $("#pageNumCus").val() > 0) {
var redirectpage = $("#pageNumCus").val() - 1;
} else {
var redirectpage = 0;
}
oTable.fnPageChange(redirectpage);
});
//13表示enter按键的keyCode编码
$('#pageNumCus').keydown(function(event) {
if (event.keyCode == "13") {
if ($("#pageNumCus").val() && $("#pageNumCus").val() > 0) {
var redirectpage = $("#pageNumCus").val() - 1;
} else {
var redirectpage = 0;
}
oTable.fnPageChange(redirectpage);
}
});
},
language: { //多语言
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "全局模糊搜索:",
"sUrl": "",
"sEmptyTable": "表中数据为空",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
}
});
通过chrome://net-internals工具抓到的本条接口请求情况如下:
报错提示为:413 Request Entity Too Large请求实体过大,可是这跟打开或关闭开发者工具应该没关系的,但是却会出现这个问题。
我的chrome浏览器版本是 62.0.3202.89,升级之前是 61.两个版本都有出现此问题,但是再早些的版本就不会出现此问题。另外,firefox与ie不会出现这个问题。
|